The present invention relates to switch and multi-hop switch fabric architectures and, in particular, to flow and congestion control techniques in such architectures.
The goal of scalable switch fabric architectures is to interconnect N switches in such a way so as to achieve as close to N times the transmission bandwidth that could be achieved with only one of the switches. Such techniques include flow control and congestion management which attempt to ensure efficient use of fabric bandwidth without latency spikes or packet loss. Conventional architectures such as, for example, those commonly used with Fibre Channel and InfiniBand protocols, are typically constructed to rely on a credit-based, input/output queued switch architecture that results in stiff flow-control which can significantly limit the bandwidth of the overall fabric. Alternatively, common architectures for fabrics in Ethernet switches often rely on statistical packet drop with very large buffers to achieve near full bandwidth operation. This has the disadvantage of penalizing applications which are highly sensitive to loss or jitter and results in a high manufacturing cost basis of the switch for off-chip memories, etc.
Converged fabrics, i.e., switch fabrics which attempt to integrate different classes of traffic having often radically different priority and bandwidth requirements, exacerbate the problems associated with flow control and congestion management. Existing solutions have difficulty integrating such disparate types of traffic while efficiently using available fabric bandwidth.